const router = require('koa-router')() // 一边导入一边实例化
// 操作数据库的接口
const { getToken, Queryurl } = require('../../config/databaseapi.js')
// 注册接口
router.post('/rootdirectory', async (ctx) => {
	console.log('查询文件/文件夹接口')
	console.log('查询参数',ctx.request.body);
	const queryParams = {};
	for(let key in ctx.request.body){
		console.log(key);
		if(key!=="fileName" || (key=="fileName" && ctx.request.body[key]!=="")){
			queryParams[key] = ctx.request.body[key];
		}
	}
	console.log(queryParams);
	// 由于微信云数据库在查询数据是一次只能默认获取10条数据，所以需要设计一个算法来一次获取到全部数据
	let total = await new getToken().posteve(Queryurl, `db.collection("study_materials").where(${JSON.stringify(queryParams)}).get()`)
	let page = Math.ceil(total.pager.Total / 10)
	let tasks = []
	for (let i = 0; i < page; i++) {
		let resPromise = new getToken().posteve(Queryurl, `db.collection("study_materials").where(${JSON.stringify(queryParams)}).skip(${i * 10}).limit(10).get()`)
		tasks.push(resPromise)
	}
	let results = await Promise.all(tasks)
	let alldata = []
	for (let i = 0; i < results.length; i++) {
		if (results[i].errcode === 0) {
			for (let j = 0; j < results[i].data.length; j++) {
				alldata.push(results[i].data[j]);
			}
		} else {
			ctx.body = { msg: "查询失败", status: 0 }
			break;
		}
	}
	console.log('查询到的所有数据', alldata);
	
	if (alldata.length > 0 || alldata.length == 0) {
		ctx.body = { msg: "查询成功", status: 1, data: alldata }
	}
})

module.exports = router.routes()